package com.ruoyi.clinic.dto.clinicorg;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

@Data
public class ClinicOrgUpdateDTO implements Serializable {

    @Serial
    private static final long serialVersionUID = 464006732776566367L;

    /**
     * 机构ID
     */
    private Long orgId;

    /**
     * 机构名称
     */
    @Size(max = 80, message = "机构名称，字符长度最大为80")
    @NotBlank(message = "机构名称不能为空")
    private String orgName;

    /**
     * 机构类别
     */
    @NotBlank(message = "机构类别不能为空")
    private String orgCategory;

    /**
     * 联系人
     */
    @Size(max = 50, message = "联系人，字符长度最大为50")
    @NotBlank(message = "联系人不能为空")
    private String contact;

    /**
     * 电话
     */
    @Size(max = 20, message = "电话，字符长度最大为20")
    @NotBlank(message = "电话不能为空")
    private String telephone;

    /**
     * 所在省份ID
     */
    @NotNull(message = "所在省份不能为空")
    private Long provinceId;

    /**
     * 所在省份名称
     */
    private String provinceName;

    /**
     * 所在城市ID
     */
    @NotNull(message = "所在城市不能为空")
    private Long cityId;

    /**
     * 所在城市名称
     */
    private String cityName;

    /**
     * 所在区县ID
     */
    @NotNull(message = "所在区县不能为空")
    private Long districtId;

    /**
     * 所在区县名称
     */
    private String districtName;

    /**
     * 地址
     */
    @Size(max = 200, message = "地址，字符长度最大为200")
    @NotBlank(message = "地址不能为空")
    private String address;

    /**
     * 需求说明
     */
    @Size(max = 1000, message = "需求说明，字符长度最大为1000")
    @NotBlank(message = "需求说明不能为空")
    private String demand;

    /**
     * 营业执照照片(多个使用英文逗号隔开)
     */
    @NotBlank(message = "营业执照照片不能为空")
    private String licenseImage;

    /**
     * 医疗执业许可证照片
     */
    private String medicalPracticeLicenseImage;

    /**
     * 业务员ID
     */
    private Long salesmanId;

    /**
     * 创建部门
     */
    private Long createDept;

    /**
     * 创建者
     */
    private String createBy;

    /**
     * 创建者ID
     */
    private Long createById;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 更新者ID
     */
    private Long updateById;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    /**
     * 备注
     */
    @Size(max = 500, message = "备注，字符长度最大为500")
    private String remark;
}
